from common.flask_package import *
from model.stats import *
from common.my_msg import *
from common.my_fun import *
from datetime import datetime, timedelta
from collections import Counter
import json

bp_stats = Blueprint('stats', __name__, url_prefix='/stats')

#获取统计指定数据总和
@bp_stats.route('/count', methods=['GET'])
def stats_count():
    try:
        total_count = Stats_total.stats_total_money()  # 统计总金额
        car_info_count = Stats_car_info.count_car_info()  # 统计车辆信息
        vip_count = Stats_vip.count_vip()  # 统计累计开通vip数
        order_count = Stats_order.count_order()  # 统计订单数量
        data = {
            'code': state_ok(),
            'msg': '获取成功',
            'data': {
                'total_count': str(total_count),
                'car_info_count': str(car_info_count),
                'vip_count':str(vip_count),
                'order_count': str(order_count)
            }
        }
    except:
        data = {
            'code': state_error(),
            'msg': '获取成功',
            'data': {
                'total_count': 0,
                'car_info_count': 0,
                'vip_count': 0,
                'order_count': 0
            }
        }
    return Response(json.dumps(data),mimetype='application/json')

# 获取车辆信息数据地区统计
@bp_stats.route('/province', methods=['GET'])
def stats_comment_ratio():
    if request.method=='GET':
        try:
            pve = Stats_car_info.count_province_number()  # [('广西',) ('广东',), ('北京',),('广西',)]
            # 将数据扁平化为列表
            flat_data = [item[0] for item in pve]
            # 转换省份缩写为真实地址
            address_data = [get_province_by_plate(plate[:1]) for plate in flat_data]
            # 统计各省份出现的次数
            dict_counter = dict(Counter(address_data))

            data = dict(code=state_ok(), msg='获取成功', data=dict_counter)
        except:
            data = dict(code=state_error(), msg='获取失败', data={})
    return Response(json.dumps(data), mimetype='application/json')
